////////////////////////////////////////////////////////////////////////////
//                                                                        //
//                       Copyright (c) 2003-2006                          //
//                              Wang Hua                                  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// AsCoordinate_2023.cpp
//
//////////////////////////////////////////////////////////////////////


#include "AsCoordinate_2023.h"



using namespace std;


//********************************************************************
///柱坐标系到直角坐标系的位置速度转换
/// @Author	jingheng
/// @Date	2025/3/6
/// @Input :
/// @Param	ppolar      柱坐标系航天器位置
/// @Param	vpolar         柱坐标系航天器速度
/// @Output :
/// @Param	pcart		   直角坐标系航天器位置
/// @Param	vcart		   直角坐标系航天器速度
//********************************************************************
void AsPolarToCart(const CPolar3 & ppolar, const CPolar3 & vpolar, CCoord& pcart, CCoord& vcart)
{
	double cs = cos(ppolar.m_Theta), sn = sin(ppolar.m_Theta);

	pcart[0] = ppolar.m_Radius * cs;
	pcart[1] = ppolar.m_Radius * sn;
	pcart[2] = ppolar.m_Z;
	vcart[0] = vpolar.m_Radius * cs - ppolar.m_Radius * vpolar.m_Theta*sn;
	vcart[1] = vpolar.m_Radius * sn + ppolar.m_Radius * vpolar.m_Theta*cs;
	vcart[2] = vpolar.m_Z;
}
